回到昨天的程式碼
module tb1();
reg Data_tb1;
reg clk_tb1;
reg reset_tb1;
Wire[7:0] Out_tb1;
Wire En_out_tb1;
Rs232_test1 Rs232_test_tb1(
.Data1(Data_tb1),.clk(clk_tb1),.reset1(reset_tb1),
.Out1(Out_tb1),.En_out(En_out_tb1)
);
initial begin
Data_tb1<=0; clk_tb1<=0; reset_tb1<=0;
end
always #5 clk<=~clk;
endmodule
要輸入的測試數字
首先我們要先寫一下一個測試的訊號,大小晚一點再加。
reg[???] Data_Test_input
要輸入的測試數字
然後還有一個就是在數 Data 的大小,就是之前概念
之前的概念:
if(Count_clk >= 287 ) begin
Count_clk<=0;
end
else begin
Count_clk<=Count_clk+1;
end
end
之前數時間中的 Count_clk 的概念
那我們設定一個 reg 為 Count_Test
reg Count_Test
老樣子列一下要寫甚麼
1. 觸發的clk 條件
Clk當成為 High 時就觸發
always@(posedge clk) begin
end
**2. 數到 288 **
照抄之前的概念,數到 288
if( Count_Test >= 287 ) begin
Count_Test<=0;
end
else begin
Count_Test <= Count_Test + 1 ;
end
**3. 傳送資料 **
數到 288 的傳送資料, 明天再寫怎麼傳送,先用?????來代替
if( Count_Test == 0 ) begin
??????????
end
把這兩個合起來吧
我們合起來看,clk 觸發並且 開始數數字
// Clk當成為 High 時就觸發
// 數開始數數字
always@(posedge clk) begin
// 開始數數字
if( Count_Test >= 287 ) begin
Count_Test<=0;
end
else begin
Count_Test <= Count_Test + 1 ;
end
end
將輸入的 reg 加入進去吧
我們來加入進去看看
module tb1();
reg Data_tb1;
reg clk_tb1;
reg reset_tb1;
// 輸入的 reg
reg[???] Data_Test_input
Wire[7:0] Out_tb1;
Wire En_out_tb1;
Rs232_test1 Rs232_test_tb1(
.Data1(Data_tb1),.clk(clk_tb1),.reset1(reset_tb1),
.Out1(Out_tb1),.En_out(En_out_tb1)
);
initial begin
Data_tb1<=0; clk_tb1<=0; reset_tb1<=0;
end
always #5 clk<=~clk;
// Clk當成為 High 時就觸發
// 數開始數數字
always@(posedge clk) begin
// 開始數數字
if( Count_Test >= 287 ) begin
Count_Test<=0;
end
else begin
Count_Test <= Count_Test + 1 ;
end
if( Count_Test == 0 ) begin
??????????
end
end
endmodule
明天再寫要傳送的資料寫法